23

» WarCraft 3 / Проблемы утечек

Похожие вопросы:

ответ
Какой ужас
Делай вот так.
бронепоезд
создать.
направить на 128 точек наверх(90)
сделать неперманентным
текст удалится через 3 секунды
текст затухнет до 100% прозрачности через 3 секунды
Вот чёрт. не успел приплюснуть к посту.
ответ
Ну еще и 100500 юнитов могут начать лагать, 60+ на игрока которые куда то бегут уже не хорошо.
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
P.S в ваших юнитах совсем не разобрался, какой то кавардак - нету четкого разделения на юнитов для волн, боссы, суммоны героев, герои игроков....
ответ
Прошу прощения, перепроверил, не течет, занимает 4 хендла на время действия, потом чистит
ответ
Steal nerves:
объяснение
если герой удалил с помощью репик героя
Не понял что ты написал, если имеешь в виду удалить героя (RemoveUnit), то это событие никогда не запустит поток, так как объекта то уже нет (удален). Не должно по идее. Во-вторых, нельзя удалить событие. Событие обычно вешают (регистрируют) на объекты (юниты, игроки и др), большая часть стандартных событии (юнит умирает, юнит применяет абилу и др короче общие события) - вешают (регистрируют) на игроков. Короче событие - рычаг, который фиксирует изменения объекта. Есть другие еще событие со временем - "запускать каждые ... секунд" - тоже рычаг, но переменных не дает (типа Dying Unit(), GetTriggerUnit() и др)
Если смотреть по поводу того утечек и как лучше сделать/оптимизировать случаи с единичными событиями, которые вешают на одного юнита:
  1. есть два варианта либо вешаешь все на один триггер события разных юнитов (еще нужно в некоторых случаях запихивать юнитов в группу для проверки, если там такой юнит есть, то не нужно добавлять) и не париться (рабочий вариант). Пример_GUI_Impetus,
  2. Или создаешь каждый раз новый триггер, регистрируешь на него событие юнита (пример при атаке), (так было сделано в доте, видимо для успешной атаки, типа отслеживаешь что это был физический удар, скилл Impetus), потом ссылки на action и condition запоминаешь в переменные или в хэшз, затем удаляешь условие/действие, и триггер удалить. Условие можно не удалять, кто-то писал что не нужно
Можно привести к моему выводу, что событие не удалить. Тестировал давно функции ссылка на игроках, Рисую ситуацию: на игрока зарегистрировал событие (применить скилл), прикрепил также к триггеру условие и действие.
Игрок запускает способность => срабатывает событие => проходит проверка условия => действие.
Если убрать действие или условие, то рычаг все равно работает. Отсюда следует вывод: даже будь хоть выключен триггер, событие все равно работает. Функция GetTriggerEvalCount - этой функции можно проверить сколько раз запускал условие с событием. Но как-то пробовал еще и без условия проверить, прокатывает и на событие походу (точнее это счетчик на событие). Так как рычагом является игрок. А если рычагом станет не игрок, а юнит (часто систему урона на него вешают), то там юнита можно удалить, и событие никогда не заработает, так как его уже нет
Что хочу сказать. Если у тебя 50 триггерных скилов, и 50 триггеров с одним и тем же событием, лучше его оптимизировать, на одно событие. Где-то была ссылка
это будет надеюсь понятно
ответ
Steal nerves:
Alexey103, а у меня работает, проверял. тут ошибка в названии переменной, скорее всего, зачем ты задал такое. Мб оно слишком длинное и через нижнее подчеркивание? и путь модель указывают в jass не через один обратный слэш "/", а через двойной слэш "//". Это на гуи один, на джаз два слэша

23

» WarCraft 3 / Фаталит карта

Похожие вопросы:

ответ
Было создано 22 366 679 экземпляров класса CUnitListNode, которые заняли 255.9 МБ памяти.
При очередной попытке выделения, игра упала.
Виной всему утечки памяти: за 21 минуту набралось 80 тысяч групп и 20 тысяч точек.
Также, из-за выполнения большого количества кода, сильно лагает.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
Хорошо, что ты приложил карту, так как в логе маловато информации.
ответ
ScopteRectuS, ну как я и догадывался, что идет рекурсия.
10 событий - юнит получает урон, на одного юнита... Нужны именно такого типа проверки, всегда в условии триггера проверяй от кого урон и какой этот урон с помощью флага глобалки как в примере.В блоге лича хорошо описаны костыли доты, почитай для общего развития чтобы не наступать на эти грабли еще раз.
ответ
Лол, "создать труп", нельзя ставить 12. Метод тыка побеждает
ответ
ScopteRectuS, нет, таймед лайф это своего рода бафф, он сам следит есть ли юнит. Если юнит сдохнет бафф самовыпилится самостоятельно, так что нет. Смотри баффы иллюзий и волков, они не проигрывают анимации смерти. Подбираешь бафф и все, анимации смерти невидно.
Хайдить тоже можно, под хайдом юнит нормально умирает и разлагается.
ответ
Короче, всем спасибо, пока поставлены еще количество костей, количество граней у кости и добавлены дальность атаки и цели для нее, фаталить перестало
функцию потом поменяю

23

» WarCraft 3 / Как получить кликнувшего игрока?

Принятый ответ
Похожие вопросы:

ответ
Перебором каждого игрока и проверкой, что у него щас выделен этот юнит
Или использовать EVENT_PLAYER_UNIT_SELECTED , тогда будет TriggerPlayer

23

» WarCraft 3 / Триггерно добавляем урон герою

Похожие вопросы:

ответ
Локальные переменные нельзя использовать в GUI'шных "if then else", карта просто не запустится
Т.к если GUI'шные "if then else" перевести в jass, то будет функция с действиями триггера, а чуть выше функция с условиями этого же "if then else".
А в этом и прикол локальных переменных, их можно использовать только в пределах функции в которой они были вызваны (созданы).
И лучше начни писать на jass, он легкий, хоть и кажется сложным после GUI
К примеру такие задачи на GUI которые буквально голову ломают - на jass делаются достаточно легко и быстро
дабы избежать конфликтов с многократными использованием
это будет проблематично на GUI
Поэтому лучше не парить голову этим, а почитать эти материалы:

23

» WarCraft 3 / Поворот даммика

Похожие вопросы:

ответ
~16GB:
0.06 время жизни слишком мало ставь хотя бы 0.3
ответ
Используйте Кривые Безье, с помощью всего двух значений можно нарисовать огромную кучу движений.
ответ
Всё, понял как сделать

23

» WarCraft 3 / замедление времени

Похожие вопросы:

ответ
Добавлять бафы триггерами, на сколько я знаю, нельзя, но можно снимать.
Чтобы повесить баф на юнита, нужно:
  • Создать способность которая повесит нужный баф
  • Создать дамми юнита (с абилкой москит) и дать ему эту способность
  • В нужный момент создавать этого юнита и кастовать им по нужной цели
При инициализации карты, создать и удалить всех юнитов которые будут потом создаваться триггерами, чтобы избежать секундных фризов.
ответ
Юзай ретурн баг, он снова доступен...
Просто массив целочисленных куда записаны ид code.
Вот ссылочка
ответ
Araders, ну я привык с технической точки зрения смотреть ))
Если кому нужно - есть наработка по перемещению во времени.
ответ
Вешаешь даммиками замедление на всех юнитов кроме нужного пуджа подобравшего руну, которому даешь спецэффект с следом из изображений. Еще всем замедленным юнитам меняешь скорость анимации.
Снаряды стрелков и заклинаний не замедлятся, но в пуджах все эти хуки на триггерах, так что проверяется что время замедлено, и соответственно смещаются они меньше.
ответ
А почему одну камеру нельзя использовать и изменять её положение? Рывки?

23

» WarCraft 3 / мини карта

Похожие вопросы:

ответ
есть предложение заменить значки миникарты прозрачной текстурой
ответ
ну, тогда никак
ответ
в константах уровень кампов нейтралов регулируется, с какого суммарного уровня будет желтая и красная точки
другими способами без мх никак
ответ
war3mapPreview.tga - обложка карты
war3mapMap.blp - текстура миникарты

23

» WarCraft 3 / озвучка юнита

Похожие вопросы:

ответ
Nikitos6, проверь галочки во вкладке "Вид"
ответ
UI\SoundInfo\UnitAckSounds.slk
ответ
Denis55:
Ты случайно не знаешь как они это сделали ? (сейчас залез в мпкушник там в папке ///units озвучки лежат ... сделал тоже самое даже по сути попробовал их озвучку в мпкушник засунуть свой... не видит редактор может как то что надо еще где то прописать??? (Или нужено в War3.MPQ кидать (Просто кидал я в WC3Patch.mpq)
Да, нужно прописывать, в UI\SoundInfo\UnitAckSounds.slk
ответ
Где-то я уже видел ответ на такой вопрос...
Вспомнил. На ютубе. Вбей в поисковую строку "Своя озвучка в варкрафт".
ответ
Мб озвучки просто отменили
Учитывая, что под контроль игрока эти юниты никогда не давались, разумно решили - не самое важное

23

» WarCraft 3 / Видно всю карту во время игры. КАК ИСПРАВИТЬ?

Похожие вопросы:

ответ
Настройки карты => скрытые области частично видны => uncheck
ответ
изменять триггерно границы камеры
подробнее в статьях и функшионлисте
кнопка статьи вверху
ответ
при создании предмета в какой-то точке на карте ты создаешь его с помощью координат
присвой переменной Point рандомную позицию на карте, после создавай там предмет и дамми\видимость\чупакабру
как только предмет взяли - удаляем дамми и точку из памяти
профит
ответ
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.

23

» WarCraft 3 / 3 д камера

Похожие вопросы:

ответ
N7 Molot:
DvernoiProem:
Там все включенные триггеры - относятся к системе. Остальные выключены.
Попробуй ка сохранить карту без этой функции, потом опять с нею. Я сейчас попробую оптимизировать её.

23

» WarCraft 3 / Время суток...

Похожие вопросы:

ответ
Бредятина.
Делаешь спелл(как у мастера клинка) и ставишь время действия 3600(час) и уменьшаешь владельцу триггерно ману на 1, при уменьшении смотрим наличие бафа инвиза, если маны нет, снять бафф инвиза (при снятия баффа, инвиз автоматом убирается, проверено), а если нет бафа - прекратить снимать ману.
ответ
ну там стандартная гуи функция отвечает чтобы при старте игры было 6 утра, без нее будет ночь, а насчет увеличения времени суток: Дополнительно-Игровые константы, там можно увеличить время дня и ночи, и кажется настроить время восхода и заката
ответ
~8gabriel8:
Может быть так время триггерно установлено? В триггерах действие Игра - Set Time Of Day.
ответ
Событие: Юнит убит
Условие: проверяешь время игры, должно быть:
>= 18:00 ИЛИ <= 6:00
Это если у тебя стандартное время.
ответ
В редакторе триггеров, в действиях, категория "Игра".
Подробнее сейчас не могу сказать, редактора нет рядом.

23

» WarCraft 3 / Ресурсы для проекта...

Похожие вопросы:

ответ
Свою карту добавляйте через эту форму:

А ещё за такое название вопроса в следующий раз пойдут замечания.
ответ
скорее всего это что-то из разряда исикаповских клиентов
ответ
Перспективы создания карт на вркрафт 3.
хочешь популярности и крупный донат?? Тогда редактор варика - точно не тот инструмент для тебя. Кроме ностальгирующих ветеранов в варик никто особо не играет, а эти сами ветераны повидали всякое, едва ли ты их удивишь настолько, что о тебе будут говорить. Замечание о выходе обновления на вар3 не вызвало даже тени мысли у приятелей-некогда-перводотеров-и-кастомных-карт-игроков снова установить варкрафт(я даже не сказал им что обновление по сути ничего не делает, просто что вышло обновление). Может только мне так везёт, но мои печальные наблюдения в том, что варик медленно но верно теряет игроков.
По крайней мере слово "перспектива" тут явно чужое.
ответ
~8gabriel8:
В верхнем правом уголке сайта плюсик с маленькой стрелочкой, нажимаешь на него, там второй пункт Основать проект.

23

» WarCraft 3 / Помогите решить проблему!!

Похожие вопросы:

ответ
]]Chupakabra[[, я понял. Крч на костылях придется лепить. Попробуй при выборе героя добавлять геройские абилки, а потом блочить или удалять их. Думаю, так можно добавить до 7 штук. Через ро не получается больше 5.
Если не получится - пробуй делать полностью триггерно с помощью спеллбука.
ответ
анимационный таг
анимация
триггеры

при выделении юнита заставляем его проигрывать определенную анимация
при снятии выделения - прекращаем
ответ
Получилось потому что кто-то не аккуратно редактировал модель. Явно же вершины смещены или скорее прикреплены не к той кости. Переделать нужно.
ответ
~8gabriel8:
PT153, это лимит для одного игрока, то есть героя смогут нанять другие.
Нужно поставить таверне способность Продажа войск. Потом делаешь триггер:
Событие: Юнит вошёл в область (Вся игровая карта)
Условие: Триггеринг юнит равно Герой равно Да (можно этого не делать, просто исключает срабатывание триггера для каждого юнита)
Действия: несколько действий Если/То/Иначе
Если - Юнит тип (Триггеринг юнит) равно Какой-то Герой Из Таверны
То - Нейтральное здание - Удалить Какой-то Герой Из Таверны из таверны
Иначе - Ничего
И так для каждого типа героев в таверне.
ответ
~8gabriel8:
Карты в кампании на 1.26 более 8 мб не запускаются.

23

» WarCraft 3 / Пропадают изменения

Похожие вопросы:

ответ
  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
ответ
По мере работы с триггерами, в частности с триггерными способностями, разобрался и с этой проблемой(методом "тыка"). Чтобы не оставлять вопрос без ответа, сам отвечу.
Событие:
Боевая единица А - unit Атакован
P.S Постарался устранить утечки, вроде получилось.
Забыл про не большое условие.
ответ
ClotPh:
Ige, т. е. как-то так (при инициализации)?
call Preload (war3mapImported\SingerOfDeath1.wav)
call Preload("war3mapImported\\SingerOfDeath1.wav")
ответ
Настройки баффа пронзающей смерти, у неё два баффа, один для стуна второй как раз делает псевдополёт.
ответ
В модел эдиторе перенеси нужную кость в начало координат и в ключевых фреймах пропиши одинаковые координаты для этой кости. Вот и проверишь.

23

» WarCraft 3 / Дота, редактор и триггеры

Похожие вопросы:

ответ
IGOREIK, там четыре события на применение способности.
Пробуй разные, выбери, какое подойдёт лучше.
Вариант 8gabriel8 лучше. Немного дополню. Можно найти модель спецэффекта, который применяется во время включения способности. Посмотреть редакторами моделей (War3ME, например), какой там звук используется. И прописать импортированному звуку этот путь.
ответ
Такого в JNGP не должно быть, если будут ошибки - об этом скажет JassHelper или AdicHelper и выключаться триггеры не должны
ответ
0.02 секунды вейт слишком короткий, каст ножа не успевает произойти - даммик удаляется раньше.

23

» WarCraft 3 / В чем ошибка?

Похожие вопросы:

ответ
Раздели вейтом, конверсия требует нескольких моментов для доделки...
Долой "темный", юзай морф медведя или Иллидана
это не спасёт от потери приобретённых триггерно спеллов
ответ
Melissa:
на твоей мапе все работает о_о
вата фак....

в первой версии селектора событие выделения было только у игрока 1, как у тебя
получается, если впихнуть событий выделения на игрока больше одного, они перестают работать?
ответ
нет нельзя
юзай смерч и дамикаст
подробнее там xgm.guru/forum/showthread.php?t=615
ответ
Nero-PC, если подготовка только началась то юнита ещё нету
он появится лишь по окончанию подготовки
тебе надо смотреть не юнит а тип юнита
там есть реакция на событие - подготавливаемый тип юнита
или чтото подобное
на джасс это будет
int GetTrainedUnitType();
ответ
"Unit type of Matching Unit"

23

» WarCraft 3 / Декораций в WE?

Похожие вопросы:

ответ
Что-то не так с русским языком =(
А вообще. Только надо скачивать старые версии my warcraft studio
ответ
Делаешь, наверное, неправильно. Сначала тебе нужно выделить те декорации (копировать, вырезать), потом жмешь вставить (у тебя появится возможность выбрать место, куда ты их хочешь поставить, будут видны сами объекты, которые двигаются за курсором мыши). После этого ничего не жмешь и идешь в пункт Правка и жмешь Повернуть.../Отразить..., как тебе нужно, и только после всего этого ставишь на карту повернутый вариант.
ответ
Nelloy, насколько я понимаю, лимит декораций есть только в редакторе. (Может, я и ошибаюсь.) Но в коде есть лимит операций. И, вполне возможно, своим триггером ты его превысил. Для понимания можно почитать эту статью. И там ещё по ссылкам походить.
ответ
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе

В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.

Только там такой срач и дичь, что лучше реально своими руками с нуля писать...
ответ
vovana123, на данный момент штатный телепат в отпуске
дождитесь его возвращения либо сообщите всю необходимую информацию, а именно:
  1. версия war3 на старом компьютере
  2. версия на новом компьютере
  3. используется ли в картах рб/мемхак
  4. настройки графики в обоих war3
  5. карта которая не запускается

23

» WarCraft 3 / Ошибка.

Похожие вопросы:

ответ
qzGoon:
включен, и 0..
не включен, во первых AdicHelper обрабатывает код раньше JassHelper'а
Во вторых он убирает все пробелы, а тут пробелы есть
В третьих локалки не в начале функции должны автоматически переноситься парсером в начало функции.
Вывод: у тебя не работает AdicHelper
Кинь карту и JNGP туда где нету русских букв в пути
ответ
Не советую делать карты на последних патчах, там близзарды сломали все что только можно было сломать. Это раз, два - для кого карта? На оф серверах все мертво, редкие мили матчи явно не ваша аудитория.
Три - 1.26 полно комьюнити + все работает, не хватает возможностей - мемхак в помощь.
ответ
~8gabriel8:
JNPG не рассчитан на этот распространённый русификатор. Если хочешь русский JNPG, то на сайте есть проект пользователя Пушистый FNWE.
Там не только нормальный перевод, но и много дополнительных функций.
ответ
Имя функции задано неправильно.

23

» WarCraft 3 / Как заменить курсор...

Похожие вопросы:

ответ
Увы, нет - стройка абилками не полноценна, так что берем работника со способностью построить (её можно редактировать в константах)
В теории можно слепить абилку с помощью мемхака но, лич так и ненашел тот участок кода где создаются всякие прицелы, аое наведения, прилипшие к курсору полупрозрачные модели зданий...

23

» WarCraft 3 / Что делать?

Похожие вопросы:

ответ
nvc123, да, и я это уже понял
ответ
XGM Bot:
Похожие вопросы:

ответ
  1. Если юзал JNGP, залезь в папку backups - мб там остались работоспособные недавние копии
  2. Попробуй MPQ Editor, мб удастся что-то вытащить, чтобы не совсем с нуля начинать, если карта таки сломалась
  3. Вообще если карта долго грузится, это не факт, что она не загрузится вообще (хотя, судя по описанию ситуации, вряд ли это твой случай)
ответ
nvc123, да, и я это уже понял
ответ
Наверно заставляет героя (whichHero) прокачать скилл (abilcode) по его рав-коду (например 'A000').
Не?
ответ
да я решыл проблему я просто перегрузил комп
Я понел в чом проблема я поставил в vjass 2 галки нижние включил из надо отключать и тогды проблем не будет

ответ
Закинуть Fonts в папку с игрой - должно помочь (требует включенного параметра на подгрузку локальных файлов).

23

» StarCraft 2 / Модели для Starcraft 2

Принятый ответ
Похожие вопросы:

ответ
Вытащить можно с помощью Casc view'а. Открываешь игровые архивы ск2. Все модели лежат в папке mods\void.sc2mod\base.sc2assets\Assets.

23

» WarCraft 3 / Заснеженные здания

Похожие вопросы:

ответ
Gerych, сюда тоже можно но вопрос будет закрыт через неделю с момента последнего ответа
ну а вообще для таких вещей стоит создать бложик и там в качестве ресурса подобное спрашивать

23

» WarCraft 3 / Выбрать рельеф

Похожие вопросы:

ответ
Ну насчет первых двух вопросов не знаю. Не супер-пупер картодел. Но с последним - скачай вот это: xgm.guru/p/wc3/jassnewgenpack-exp это расширенный редактор, там можно и карту гиганта сделать и текстур добавить больше чем возможно, по моему до 16 штук, да и еще много чего, включая выключение огранки на декор и т.д. Когда запустиш через эту програмку редактор - появиться в верху дополнительные кнопочки. Нажимаеш на Extensions и в менюшке - Edit Tileset. И выбирай до 16 любых текстур... Вплоть до полной замены всех текстур карты. ..
ответ
заменить текстуру клифа
но она тогда заменится для всех клифов на карте
так чтобы на 1 половине были клифы с зелёной текстурой а на 2 с красной сделать нельзя